package com.tuanzi.loan.business.service.pageTemplate;

import com.tuanzi.loan.business.entity.common.CommProductId;
import com.tuanzi.loan.business.entity.pageTemplate.LoanPageTemplateInfo;
import com.tuanzi.loan.business.service.pageTemplate.impl.LoanPageTemplateInfoServiceImpl;
import com.tuanzi.loan.core.service.BaseAuditService;
import com.tuanzi.loan.core.vo.PageSearcher;
import com.tuanzi.loan.vo.request.pageTemplate.LoanPageTemplateInfoRequest;
import com.tuanzi.loan.vo.response.pageTemplate.LoanPageTemplateInfoResponse;
import com.tuanzi.loan.vo.view.pageTemplate.LoanPageTemplateInfoView;
import org.springframework.data.domain.Page;

import java.util.List;

public interface LoanPageTemplateInfoService extends BaseAuditService<LoanPageTemplateInfo,Long> {
    Page<LoanPageTemplateInfoResponse> list(PageSearcher<LoanPageTemplateInfoRequest> pageSearcher);

    LoanPageTemplateInfo savePageTemplate(LoanPageTemplateInfoView view);

    LoanPageTemplateInfoView loadPageTemplateInfoView(Long pageTemplateId);

    List<LoanPageTemplateInfoServiceImpl.CommProductVo> getProducts(List<CommProductId> allProducts, Long pageTemplateId);

    void online(LoanPageTemplateInfo templateInfo);
    void online(List<LoanPageTemplateInfo> templateInfos);

    void offline(LoanPageTemplateInfo templateInfo);
    void offline(List<LoanPageTemplateInfo> templateInfos);

    void deleteTemplate(LoanPageTemplateInfo templateInfo);

    List<LoanPageTemplateInfo> findSubstitute();

}
